<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS 函数</title>
    <script>

        /* 测试带有参数的 js 函数 */
        function testVarFunc(name,job) {
            alert("Welcome" + name + job)
            alert(testReturnValFunc())  /* 互相调用的方法 */
        }

        /*测试带有返回值的函数 */
        function testReturnValFunc() {
            var x = 5;
            return x;
        }

        /*
        * JavaScript 变量的生存期
         JavaScript 变量的生命期从它们被声明的时间开始。
         局部变量会在函数运行以后被删除。
         全局变量会在页面关闭后被删除。
        * */
        
        /* 如果把智赋给尚未声明的变量 改变量自动变为 全局变量声明 */
        function testUndeclearVar() {
            camera = "Camera"
            alert(camera)
        }

        function testUndeclearVarSecond() {
            alert(camera)  /* 拿到了那个值 */
        }
        

    </script>
</head>
<body>
    <button onclick="testVarFunc('Harry Potter','Wizard')">点击这里测试</button><br/>
    <button onclick="testVarFunc('Bob','Builder')">点击这里测试2</button><br/>

    <!--  调用第一次 相当于定义一个全局变量 并且赋值 -->
    <button onclick="testUndeclearVar()">测试未声明的局部变量</button><br/>
    <!-- 第二次 我们直接弹出 刚那个变量 -->
    <button onclick="testUndeclearVarSecond()">测试未声明的局部变量二</button><br/>

</body>
</html>